@echo off
chcp 65001 >nul
title 改进的隧道工作流 - 自动化管理
color 0B

echo.
echo ========================================================
echo        改进的隧道工作流 - 解决地址变化问题
echo ========================================================
echo.

echo 🎯 工作流优势:
echo    ✅ 自动获取新地址
echo    ✅ 自动更新配置
echo    ✅ 自动编译 APK
echo    ✅ 地址变化通知
echo    ✅ 一键重启功能
echo.

echo 🔍 检查 WebSocket 服务器状态...
netstat -an | findstr :8080 >nul
if %errorlevel% neq 0 (
    echo 🚀 启动 WebSocket 服务器...
    start /B python final_websocket_server.py
    timeout /t 3 >nul
)

netstat -an | findstr :8080 >nul
if %errorlevel% neq 0 (
    echo ❌ WebSocket 服务器启动失败
    pause
    exit /b 1
)
echo ✅ WebSocket 服务器运行正常

echo.
echo 🌐 启动 Cloudflare Tunnel...
echo 💡 将自动获取新地址并更新配置

echo.
echo 📋 隧道信息将保存到: tunnel_info.txt
echo 🔄 配置更新日志: config_update.log
echo.

echo 开始监控隧道输出... > tunnel_info.txt
echo 启动时间: %date% %time% >> tunnel_info.txt

(
    echo 🚀 启动隧道...
    .\cloudflared.exe tunnel --url localhost:8080
) | (
    set "found_url="
    for /f "delims=" %%i in ('findstr "https://.*\.trycloudflare\.com"') do (
        set "tunnel_url=%%i"
        echo 🎉 获得地址: %%i
        echo 隧道地址: %%i >> tunnel_info.txt
        echo 获取时间: %date% %time% >> tunnel_info.txt
        
        echo.
        echo 📱 自动更新 Android 配置...
        python update_tunnel_config.py %%i
        
        echo.
        echo 🔨 自动编译 APK...
        start /wait .\gradlew assembleDebug
        
        echo.
        echo ✅ 更新完成！
        echo APK 位置: app\build\outputs\apk\debug\app-debug.apk
        echo.
        
        set "found_url=1"
    )
    
    if not defined found_url (
        echo ❌ 未能获取隧道地址
        echo 请检查网络连接或重试
    )
)

echo.
echo 📄 查看完整信息:
type tunnel_info.txt

echo.
echo 🎯 下次快速重启:
echo    1. 运行此脚本: improved_tunnel_workflow.bat
echo    2. 或手动运行: start_cloudflare_tunnel.bat
echo.

pause 